package com.itheima.reggie.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.reggie.dto.SetmealDto;
import com.itheima.reggie.pojo.Dish;
import com.itheima.reggie.pojo.Setmeal;

import java.util.List;

/**
 * 套餐信息
 */
public interface SetmealService extends IService<Setmeal> {

    /**
     * 分页查询套餐信息(包括分类信息)
     * @param page,pageSize 分页条件
     * @param name 查询条件
     * @return 查询结果
     */
    Page<SetmealDto> pageSetmealDto(int page, int pageSize, String name);
    /**
     * 添加套餐信息 ( 套餐关联的菜品集合)
     * @param setmealDto 套餐信息
     * @return 操作结果
     */
    void saveSetmealDto(SetmealDto setmealDto);

    /**
     * 根据id删除套餐 (包括套餐关联的菜品集合)
     * @param ids 套餐id
     */
    void deleteByIdWithDish(Long[] ids);

    /**
     * 根据id查询套餐信息 ( 包括套餐关联的菜品集合)
     * @param id 套餐id
     * @return 查询结果
     */
    SetmealDto findByIdWithDish(Long id);

    /**
     * 修改套餐信息 ( 关联菜品集合)
     * @param setmealDto 套餐信息
     */
    void updateSetmealDto(SetmealDto setmealDto);

    /**
     * 根据分类 查询套餐信息 ( 套餐关联的菜品)
     * @param setmeal 分类信息
     * @return 查询结果
     */
    List<SetmealDto> listSetmealDto(Setmeal setmeal);

    /**
     * 根据id查询套餐关联的菜品
     * @param id 套餐id
     * @return 查询结果
     */
    List<Dish> findDishById(Long id);
}
